\catcode`?=\active
\def\answer{\let~\expandafter\lccode`!=`H
~\lwercase~{~!~o~w~ ~d~i~d~ ~t~h~i~s~
~h~a~p~p~e~n~?\error}}
\answer
\begingroup
\def\answer{\catcode13=2\lccode`!=`H\lowercase\bgroup!ow did this happen?}
\answer
\endgroup
\def\answer{\def\a##1{{\global\let##1?\aftergroup##1}}\escapechar`H\lccode`!`?
\lowercase{\expandafter\a\csname ow did this happen!\endcsname}}
\answer